package com.deyuanyun.pic.insp.service.inspresult;

import com.deyuanyun.pic.insp.controller.dto.InspresultByFind;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * @ClassName MetalLossService
 * @Description 查看数据-》金属损失service接口
 * @author 荣华兴
 * @date 2015年9月25日
 */
public interface MetalLossService extends BaseService {


	/**
	 * @Description: 根据金属损失类型查询对应的金属损失类型总数
	 * @Author: 荣华兴
	 * @Create Date: 2015年9月24日
	 * @参数： 金属损失类:featureType
	 * @Return:int
	 */
	int CountMetalLoss(InspresultByFind IRBF);

	/**
	 * @Description: 根据条件查询总数
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月10日
	 * @参数：@param IRBF(含，管道、检测管道、检测任务、物理管段)
	 * @参数：@return
	 * @Return:HashMap<String,Object>
	 */
	HashMap<String, Object> MetalLossAmount(InspresultByFind IRBF);

	/**
	 * @Description: 根据检测管道ID查出对应的检测任务
	 * @Author: 荣华兴
	 * @Create Date: 2015年9月28日
	 * @参数：@param taskLineId
	 * @参数：@return
	 * @Return:List
	 */
	List getTaskByTaskLineId(String taskLineId);

	/**
	 * @Description: \根据检测管道ID查出对应的物理管道
	 * @Author: 荣华兴
	 * @Create Date: 2015年9月28日
	 * @参数：@param taskLineId
	 * @参数：@return
	 * @Return:List
	 */
	List getSegmentByTaskLineId(String taskLineId);

	/**
	 * @Description: 根据页面传值，统计各金属损失数
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月7日
	 * @参数：@param iRBF
	 * @参数：@return
	 * @Return:List
	 */
	List<HashMap<String, Object>> MetalLossCount(InspresultByFind IRBF);

	/**
	 * @Description: 根据条件查询金属损失总数
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月7日
	 * @参数：@param IRBF
	 * @参数：@return
	 * @Return:int
	 */
	int allmetalLoss(InspresultByFind IRBF);

	/**
	 * @Description: 根据传入的值进行子统计
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月9日
	 * @参数：@param IRBF
	 * @参数：@return
	 * @Return:List
	 */
	List metalLossStatistics(InspresultByFind IRBF);

	/**
	 * @Description: 根据物理管段id获得相对里程
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月12日
	 * @参数：@return
	 * @Return:Integer
	 */
	HashMap getMileageByLine(InspresultByFind IRBF);


	/**
	 * @Description: 查询每种金属损失在对应的绝对里程上的数量,写入统计表
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月13日
	 * @参数：@return
	 * @Return:List
	 */
	void getCountByMaleage();

	/**
	 * @Description: 查询具体的金属损失类型对应里程上的数量，写入统计表
	 * @Author: 荣华兴
	 * @Create Date: 2015年10月14日
	 * @参数：@return
	 * @Return:List
	 */
	void getMetalLossCountByMaleage(InspresultByFind IRBF);
	/**
		* @Description: 将统计表中的数据全部查出
		* @Author: 荣华兴
		* @Create Date: 2015年10月15日
		* @参数：@param IRBF
		* @参数：@return
		* @Return:List
	 */
	HashMap<String, Object> findMetalCountForBar(InspresultByFind IRBF);
	
	/**
		* @Description: 根据类型查询金属损失的时钟分布数
		* @Author: 荣华兴
		* @Create Date: 2015年10月16日
		* @参数：@param IRBF
		* @参数：@return
		* @Return:List
	 */
	List findMetalTimMap(InspresultByFind IRBF);
	
	
	
	/**
	* @Description: 根据类型查询金属损失的时钟分布数(修改版)
	* @Author: 荣华兴
	* @Create Date: 2015年10月16日
	* @参数：@param IRBF
	* @参数：@return
	* @Return:List
 */
	HashMap getCountBytimap(InspresultByFind IRBF);
	
	/**
	 * 获取最新已完成检测任务
	 * @return
	 */
	HashMap findNewsTask();
	
}
